index.tsx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { UserInfoRep } from "@/api/user";
  2. import { Mask } from "antd-mobile";
  3. import clsx from "clsx";
  4. import { useTranslations } from "next-intl";
  5. import React from "react";
  6. import styles from "./index.module.scss";
  7. interface Props {
  8. visible: boolean;
  9. useInfo: UserInfoRep;
  10. onClose?: (needRefresh?: boolean) => void;
  11. }
  12. interface ImgItem {
  13. key: number;
  14. img: string;
  15. }
  16. const ChangeNickName: React.FC<Props> = ({ visible = false, useInfo, onClose }) => {
  17. const t = useTranslations("ProfilePage");
  18. const [innerVisible, setInnerVisible] = React.useState<boolean>(true);
  19. React.useEffect(() => {
  20. setInnerVisible(visible);
  21. }, [visible]);
  22. const doChangeAvatar = () => {};
  23. const close = () => {};
  24. return (
  25. <Mask visible={visible} onMaskClick={close}>
  26. <div className={styles.Dialog}>
  27. <div
  28. className={clsx(styles.DialogContainer, {
  29. [styles.visible]: innerVisible,
  30. })}
  31. >
  32. <div className={styles.content}>
  33. <div className={styles.title}>Selecione um Avatar</div>
  34. <div
  35. className="mt-[.1rem] rounded-[.2rem] bg-[#11de68] py-[.08rem] text-center text-[.18rem] font-bold text-[#12171a]"
  36. onClick={doChangeAvatar}
  37. >
  38. Claro
  39. </div>
  40. </div>
  41. <div className={clsx(styles.close)} onClick={close}>
  42. <i className={clsx("iconfont icon-guanbi relative z-10 text-[.14rem]")}></i>
  43. </div>
  44. </div>
  45. </div>
  46. </Mask>
  47. );
  48. };
  49. export default ChangeNickName;